#pragma once

#ifndef VTTDATATYPES_H
#define VTTDATATYPES_H

#include <BaseTsd.h>

/**
  * Struct containing the information for a single tile, which are the coordinates
  * in x- and y-direction as well as the mipmap level.
  */
struct VTTTileInfo
{
	/**
	  * Constructs a new instance of VTTTileInfo whith the values provided.
	  *
	  * @param _xCoord x-coordinate of the tile
	  * @param _yCoord y-coordinate of the tile
	  * @param _mip mipmap level of the tile
	  */
	VTTTileInfo( UINT32 _xCoord, UINT32 _yCoord, UINT32 _mip ) : xCoord(_xCoord), yCoord(_yCoord), mip(_mip) {}

	/** x-coordinate of the tile */
	UINT32 xCoord;
	/** y-coordinate of the tile */
	UINT32 yCoord;
	/** mipmap level of the tile */
	UINT32 mip;
};

/**
  * Enum value for all possible image formats
  */
enum VTTImageFormat
{
	VTT_IMAGE_JPEG,
	VTT_IMAGE_PNG,
	VTT_IMAGE_NOT_SPECIFIED = -1
};

/**
  * Enum value for all possible color spaces
  */
enum VTTColorSpace
{
	VTT_CS_RGB,
	VTT_CS_RGBA,
	VTT_CS_RGB_ALPHA = VTT_CS_RGBA,
	VTT_CS_GRAY,
	VTT_CS_GA,
	VTT_CS_GRAY_ALPHA = VTT_CS_GA,
	VTT_CS_NOT_SPECIFIED = -1
};

#endif